package base.集合;

import java.util.HashSet;

public class HashSet练习 {
    public static void main(String[] args){
        /*
        获取哈希值：
            对象的整数表现形式
            1.没有重写hashCode方法，
            2.重写hashCode方法，不同对象只要属性值相同，计算出的的哈希值就是一样
            3.小部分情况下，不同属性值和地址值计算出来的哈希值有可能一样（哈希碰撞）
         */
        Student s1 = new Student("张三",23);
        Student s2 = new Student("张三",23);
        Student s3 = new Student("李四",20);

        System.out.println(s1.hashCode());//1313922862 (没重写之前
        System.out.println(s2.hashCode());//495053715

        System.out.println("abc".hashCode());
        System.out.println("acD".hashCode());

        HashSet<String> hst = new HashSet<>();
        HashSet<Student> hst2 = new HashSet<>();
        hst.add("abc");hst.add("acD");hst.add("abc");
        hst2.add(s1);hst2.add(s2);hst2.add(s3);

        System.out.println(hst);
        System.out.println(hst2);
    }
}


